home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / httpver.nasl < prev    next >
Text File  |  2005-01-14  |  2KB  |  105 lines

  1. #
  2. # Copyright 2000 by Renaud Deraison <deraison@nessus.org>
  3. #
  4. # See the Nessus Scripts License for details
  5. #
  6.  
  7. if(description)
  8. {
  9.  script_id(10582);
  10.  script_version ("$Revision: 1.14 $");
  11.  
  12.  name["english"] = "HTTP version spoken";
  13.  script_name(english:name["english"]);
  14.  
  15.  desc["english"] = "
  16. This script determines which version of the HTTP protocol the remote
  17. host is speaking
  18.  
  19. Risk factor : None";
  20.  
  21.  script_description(english:desc["english"]);
  22.  
  23.  summary["english"] = "HTTP version";
  24.  script_summary(english:summary["english"]);
  25.  
  26.  script_category(ACT_GATHER_INFO);
  27.  
  28.  script_copyright(english:"This script is Copyright (C) 2000 Renaud Deraison");
  29.  family["english"] = "General";
  30.  script_family(english:family["english"]);
  31.  
  32.  script_dependencie("find_service.nes", "apache_SSL_complain.nasl");
  33.  script_require_ports("Services/www", 80);
  34.  exit(0);
  35. }
  36.  
  37. #
  38. # The script code starts here
  39. #
  40.  
  41.  
  42. include("http_func.inc");
  43. port = get_http_port(default:80);
  44.  
  45.  
  46.  if(get_port_state(port))
  47.  {
  48.   soc = http_open_socket(port);
  49.   if(!soc)exit(0);
  50.   req = string("GET / HTTP/1.1\r\n",
  51.             "Connection: Close\r\n",
  52.             "Host: ", get_host_name(), "\r\n",
  53.           "Pragma: no-cache\r\n",
  54.           "User-Agent: Mozilla/4.75 [en] (X11, U; Nessus)\r\n",
  55.           "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*\r\n",
  56.           "Accept-Language: en\r\n",
  57.           "Accept-Charset: iso-8859-1,*,utf-8\r\n",
  58.           "\r\n"
  59.           ); 
  60.   send(socket:soc, data:req);
  61.   r = recv_line(socket:soc, length:4096);
  62.   http_close_socket(soc);
  63.   if("200" >< r)
  64.        {
  65.       set_kb_item(name:string("http/", port), value:"11");
  66.     exit(0);
  67.     }
  68.   else 
  69.   {
  70.    soc = http_open_socket(port);
  71.    if(!soc)exit(0);
  72.    req = string("GET / HTTP/1.0\r\n\r\n");
  73.    send(socket:soc, data:req);
  74.    r = recv_line(socket:soc, length:4096);
  75.    http_close_socket(soc);
  76.    if("200" >< r)
  77.      {
  78.        set_kb_item(name:string("http/", port), value:"10");
  79.     exit(0);
  80.      }
  81.    else
  82.      {
  83.        soc = http_open_socket(port);
  84.        if(!soc)exit(0);
  85.        req = string("GET /\r\n\r\n");
  86.        send(socket:soc, data:req);
  87.        r = recv_line(socket:soc, length:4096);
  88.        http_close_socket(soc);
  89.        if("200" >< r)
  90.          {
  91.            set_kb_item(name:string("http/", port), value:"09");
  92.        exit(0);
  93.          }
  94.      }
  95.   }
  96.  }
  97.  
  98.  
  99. # The remote server does not speak http at all. We'll mark it as
  100. # 1.0 anyway
  101. if(port == 80)
  102. {
  103.  set_kb_item(name:string("http/", port), value:"10");
  104. }
  105.